package com.teamone.etl.datasource.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.teamone.etl.datasource.entity.DataSource;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * (DataSource)表数据库访问层
 *
 * @author makejava
 * @since 2021-01-06 14:22:50
 */
@Mapper
public interface DataSourceDao extends BaseMapper<DataSource> {

    /**
     * 查询所有
     * @return 数据源集合
     */
    List<DataSource> selectListSql ();

    /**
     * 修改数据源
     * @param dataSource 数据源
     */
    void updateSource(DataSource dataSource);

    /**
     * 根据id删除
     * @param id 主键id
     */
    void deleteByIdSql (@Param("id") Integer id);

    /**
     * 分页  模糊  分类
     * @param typeId 分类id
     * @param name 名称
     * @return List<DataSource>
     */
    List<DataSource> seach(@Param("typeId") Integer typeId, @Param("name") String name);

    /**
     * 查询未被禁用的数据源
     * @return List<DataSource>
     */
    List<DataSource> getAllNotDisabled ();

    /**
     * 根据id查询(DataSource)
     * @param id 主键id
     * @return DataSource
     */
    DataSource getDataSourceById(Integer id);

    /**
     根据数据源'详细信息' 获取所有正常状态的数据源 对用户名/密码/库名 脱敏
     @param description 数据源'详细信息'
     @return List<DataSource> 数据源集合
     */
    List<DataSource> getAllNotDisabledByDescriptionAndClearSensitiveInformation (String description);

    /**
     获取所有正常状态的数据源 对用户名/密码/库名 脱敏
     @return List<DataSource> 数据源集合
     */
    List<DataSource> getAllNotDisabledAndClearSensitiveInformation ();
}